package API作业;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

/**
 *本类用来测试文件类File
 */
public class zuoye {
    public static void main(String[] args) throws IOException {
        /**
         * 1.创建File文件对象
         * 构造函数的参数是String类型的pathame(路径名)
         * 这个路径可以是文件路径,也可以是文件夹路径
         */
        /*2.\在代码中有特殊意义,所以想要真正表示这是一个\,需要用\进行转义*/
        //注意:在此处需要自己手动在D盘创建对应目录下的1.txt文本文档,并添加内容
        //注意:创建1.txt四需要设置系统显示文件后缀名,如果没设置,文件名应该是1
        //注意:File需要导包:import java.io.File
        File file = new File("F:\\a\\1.txt");
        //2.测试常用方法
        //2.1文件与文件夹属性测试
        System.out.println(file.length());//18,获取指定文件的字节量大小
        System.out.println(file.exists());//true,判断指定文件是否存在
        System.out.println(file.isFile());//true;判断指定内容是否为文件
        System.out.println(file.isDirectory());//false,判断指定内容是否为文件夹
        System.out.println(file.getName());//1.txt,获取指定内容的名字
        System.out.println(file.getParent());//F:\a,获取指定内容的上级
        System.out.println(file.getAbsolutePath());//F:\a\1.txt,获取指定内容的绝对路径
        //2.2创建与删除
        file=new File("F:\\a\\1.txt");
        /**
         * 如果指定创建文件的文件夹不存在,会报错:java.io.IOException
         * 系统找不到指定的路径,由于可能会发生异常,所以调用时需要抛出异常
         */
        //在windows中创建不存在的文件2.txt,成功返回true
        System.out.println(file.createNewFile());//false,已经存在
        file=new File("F:\\a\\m");
        System.out.println(file.mkdir());//true,创建不存在的单层文件夹m
        file=new File("F:\\a\\s\\c\\e");
        System.out.println(file.mkdirs());//true,创建不存在的多层文件夹
        System.out.println(file.delete());//e被删除,删除文件或者空文件夹
        file=new File("F:\\a\\s");
        System.out.println(file.delete());//false,因为s目录里还有c目录
        file =new File("F:\\a\\2.txt");
        System.out.println(file.delete());//true,删除2.txt文件夹成功

        //2.3文件列表测试
        file=new File("F:\\a");
        String[] listName=file.list();
        System.out.println(Arrays.toString(listName));//指定文件目录的所有内容

         File[] fs=file.listFiles();
        System.out.println(Arrays.toString(fs));//按照数组的形式吧文件a目录内容打印出来
        System.out.println(fs[0].length());//长度


    }
}
